package com.zzl.bonds.ticket.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zzl.bonds.ticket.dto.CoreEnterpriseCredidataAddDto;
import com.zzl.bonds.ticket.dto.CoreEnterpriseCredidataUpdateDto;
import com.zzl.bonds.ticket.entity.EnterpriseCreditDataEntity;
import com.zzl.general.common.exception.SysException;
import com.zzl.general.common.serurity.entity.User;
import com.zzl.general.common.utils.PageUtils;

import java.util.List;
import java.util.Map;

/**
 * 核心企业授信资料表
 *
 * @author sunpp
 * @date 2022-02-16 11:14:07
 */
@SuppressWarnings("javadoc")
public interface CoreEnterpriseCredidataService extends IService<EnterpriseCreditDataEntity> {


    /**
     * 新增或者修改 授信资料
     *
     * @param list 更新实体集合
     * @param user 登录用户
     * @throws SysException
     */
    void addUpdateCreditDatas(List<EnterpriseCreditDataEntity> list, String coreCreditId, User user) throws SysException;

    /**
     * 查询核心企业的资料
     *
     * @param ids ids
     * @return
     */
    Map<String, List<EnterpriseCreditDataEntity>> getByCoreEnterpriseIds(List<String> ids);

    /**
     * 分页查询
     *
     * @param params 查询参数
     * @return 分页数据
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 新增
     *
     * @param coreEnterpriseCredidataAddDto 新增实体
     * @param user                          当前登录用户
     * @throws SysException 业务异常
     */
    void saveCoreEnterpriseCredidata(CoreEnterpriseCredidataAddDto coreEnterpriseCredidataAddDto, User user) throws SysException;

    /**
     * 修改
     *
     * @param coreEnterpriseCredidataUpdateDto 修改实体
     * @param user                             当前登录用户
     * @throws SysException 业务异常
     */
    void updateCoreEnterpriseCredidataById(CoreEnterpriseCredidataUpdateDto coreEnterpriseCredidataUpdateDto, User user) throws SysException;

    /**
     * 新增授信资料
     *
     * @param files 授信文件
     * @param id    融资授信id
     * @param user  用户
     */
    void addCreditDatas(List<EnterpriseCreditDataEntity> files, String id, User user) throws SysException;

    /**
     * 查询授信额度的文件
     *
     * @param id   融资授信额度
     * @param code 授信类型，3 开立授信 4 融资授信
     * @return 授信额度的文件
     */
    List<EnterpriseCreditDataEntity> getCredidataBySupplierId(String id, Integer code);
}

